Unlikely that many people will hit these, but still.
https://bugzilla.gnome.org/show_bug.cgi?id=645176
static void
free_pointer_info (GdkPointerWindowInfo *info)
{
- g_object_unref (info->toplevel_under_pointer);
+ if (info->toplevel_under_pointer)
+ g_object_unref (info->toplevel_under_pointer);
g_slice_free (GdkPointerWindowInfo, info);
}
void
gdk_event_free (GdkEvent *event)
{
+ GdkDisplay *display;
+
g_return_if_fail (event != NULL);
if (event->any.window)
break;
}
- _gdk_display_event_data_free (gdk_display_get_default (), event);
+ display = gdk_display_get_default ();
+ if (display)
+ _gdk_display_event_data_free (display, event);
g_hash_table_remove (event_hash, event);
g_slice_free (GdkEventPrivate, (GdkEventPrivate*) event);
{
GDK_X11_DISPLAY_MANAGER (manager)->default_display = display;
- _gdk_x11_display_make_default (display);
+ if (display)
+ _gdk_x11_display_make_default (display);
}
static void